package e2.entities;

import java.io.Serializable;
import javax.persistence.*;

import java.util.Calendar;
import static javax.persistence.TemporalType.DATE;

/**
 * Entity implementation class for Entity: Estagio
 *
 */
@Entity
public class Estagio implements Serializable {

    @Id
    private long id;
    private static final long serialVersionUID = 1L;
    @OneToOne(mappedBy = "estagio")
    private PlanoDeEstagio planoDeEstagio;
    @OneToOne(mappedBy = "estagio")
    private RelatorioAluno relatorioDoAluno;
    @OneToOne(mappedBy = "estagio")
    private AvaliacaoDoGestorDoEstagio avaliacaoDoGestorDoEstagio;
    @OneToOne(mappedBy = "estagio")
    private DisciplinaDeEstagio disciplinaDeEstagio;
    @OneToOne(mappedBy = "estagio")
    private TermoAditamentoEstagio termoDeAditamento;
    @ManyToOne
    private EstadoDoEstagio estadoDoEstagio;
    @OneToOne(mappedBy = "estagio")
    private AvaliacaoDoCoordenadorDoEstagio avaliacaoDoCoordenadorDoEstagio;
    @Temporal(DATE)
    private Calendar dataDeInicio;
    @Temporal(DATE)
    private Calendar dataDeFim;
    private String pathDoArquivoDoContrato;
    private String valorDoBeneficio;
    private String nomeDaSeguradora;
    private String numeroDaApoliceDeSeguros;
    @Temporal(DATE)
    private Calendar dataDaRescicaoDoContrato;
    @ManyToOne
    private Aluno aluno;

    public Estagio() {
    }

    public long getId() {
        return this.id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public PlanoDeEstagio getPlanoDeEstagio() {
        return planoDeEstagio;
    }

    public void setPlanoDeEstagio(PlanoDeEstagio planoDeEstagio) {
        this.planoDeEstagio = planoDeEstagio;
    }

    public RelatorioAluno getRelatorioDoAluno() {
        return relatorioDoAluno;
    }

    public void setRelatorioDoAluno(RelatorioAluno relatorioDoAluno) {
        this.relatorioDoAluno = relatorioDoAluno;
    }

    public AvaliacaoDoGestorDoEstagio getAvaliacaoDoGestorDoEstagio() {
        return avaliacaoDoGestorDoEstagio;
    }

    public void setAvaliacaoDoGestorDoEstagio(AvaliacaoDoGestorDoEstagio avaliacaoDoGestorDoEstagio) {
        this.avaliacaoDoGestorDoEstagio = avaliacaoDoGestorDoEstagio;
    }

    public TermoAditamentoEstagio getTermoDeAditamento() {
        return termoDeAditamento;
    }

    public void setTermoDeAditamento(TermoAditamentoEstagio termoDeAditamento) {
        this.termoDeAditamento = termoDeAditamento;
    }

    public EstadoDoEstagio getEstadoDoEstagio() {
        return estadoDoEstagio;
    }

    public void setEstadoDoEstagio(EstadoDoEstagio estadoDoEstagio) {
        this.estadoDoEstagio = estadoDoEstagio;
    }

    public Calendar getDataDeInicio() {
        return dataDeInicio;
    }

    public void setDataDeInicio(Calendar dataDeInicio) {
        this.dataDeInicio = dataDeInicio;
    }

    public Calendar getDataDeFim() {
        return dataDeFim;
    }

    public void setDataDeFim(Calendar dataDeFim) {
        this.dataDeFim = dataDeFim;
    }

    public String getPathDoArquivoDoContrato() {
        return pathDoArquivoDoContrato;
    }

    public void setPathDoArquivoDoContrato(String pathDoArquivoDoContrato) {
        this.pathDoArquivoDoContrato = pathDoArquivoDoContrato;
    }

    public String getValorDoBeneficio() {
        return valorDoBeneficio;
    }

    public void setValorDoBeneficio(String valorDoBeneficio) {
        this.valorDoBeneficio = valorDoBeneficio;
    }

    public String getNomeDaSeguradora() {
        return nomeDaSeguradora;
    }

    public void setNomeDaSeguradora(String nomeDaSeguradora) {
        this.nomeDaSeguradora = nomeDaSeguradora;
    }

    public String getNumeroDaApoliceDeSeguros() {
        return numeroDaApoliceDeSeguros;
    }

    public void setNumeroDaApoliceDeSeguros(String numeroDaApoliceDeSeguros) {
        this.numeroDaApoliceDeSeguros = numeroDaApoliceDeSeguros;
    }

    public Calendar getDataDaRescicaoDoContrato() {
        return dataDaRescicaoDoContrato;
    }

    public void setDataDaRescicaoDoContrato(Calendar dataDaRescicaoDoContrato) {
        this.dataDaRescicaoDoContrato = dataDaRescicaoDoContrato;
    }

    /**
     * @return the aluno
     */
    public Aluno getAluno() {
        return aluno;
    }

    /**
     * @param aluno the aluno to set
     */
    public void setAluno(Aluno aluno) {
        this.aluno = aluno;
    }

    /**
     * @return the disciplinaDeEstagio
     */
    public DisciplinaDeEstagio getDisciplinaDeEstagio() {
        return disciplinaDeEstagio;
    }

    /**
     * @param disciplinaDeEstagio the disciplinaDeEstagio to set
     */
    public void setDisciplinaDeEstagio(DisciplinaDeEstagio disciplinaDeEstagio) {
        this.disciplinaDeEstagio = disciplinaDeEstagio;
    }

    /**
     * @return the avaliacaoDoCoordenadorDoEstagio
     */
    public AvaliacaoDoCoordenadorDoEstagio getAvaliacaoDoCoordenadorDoEstagio() {
        return avaliacaoDoCoordenadorDoEstagio;
    }

    /**
     * @param avaliacaoDoCoordenadorDoEstagio the
     * avaliacaoDoCoordenadorDoEstagio to set
     */
    public void setAvaliacaoDoCoordenadorDoEstagio(AvaliacaoDoCoordenadorDoEstagio avaliacaoDoCoordenadorDoEstagio) {
        this.avaliacaoDoCoordenadorDoEstagio = avaliacaoDoCoordenadorDoEstagio;
    }
}
